package com.sinosoft.brokerchannel.base.server;

import java.util.Date;

//import com.sinosoft.encryption.AesUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import com.sinosoft.brokerchannel.base.bins.LogInterfaceInfo;
import com.sinosoft.brokerchannel.base.dao.LogInterfaceInfoDao;
import com.sinosoft.brokerchannel.base.utile.ToolUtils;

/**   
  *  
  * 需求名称:
  * 类描述:[记录log日志公共服务]
  * @author [@user] wem
  * @date [2017年9月21日 下午6:50:03]
  * version [v1.0]
  */
@Component
public class LogInterfaceServer {

	private final Logger logger = LoggerFactory.getLogger(this.getClass());
	
	/**日志表操作对象**/
	@Autowired
	LogInterfaceInfoDao logInterfaceInfoDao;
	
	/**
	 * 	 
	 *  需求名称：[需求/BUG名称]
	 *  功能:[日志记录方法 - 无需解密]
	 *  @author [@wem]
	 *  @date 2017年9月21日 下午7:15:51
	 *  @param logInfo  传入logger参数 和log表结构对应 {@link LogInterfaceInfo}
	 */
	public void saveLogger(LogInterfaceInfo logInfo) {
		// 日志写入数据库
		this.logInterfaceInfoDao.insert(logInfo); 
		this.logger.warn("非车理赔渠道平台日志-系统日期 {} ,赔案号（报案号）:  {} ,渠道编号: {} ,请求类型: {} ,接口中文名称: {} ,是否服务方: {} ,交互系统: {} ,请求/返回: {} ,报文内容: {} ,是否成功: {} ,交互结果: {} ,请求报文ID: {} ,请求时间: {} ,交互时间: {} ",
				ToolUtils.formatDate(new Date(), "yyyy-MM-dd HH:mm:ss"), logInfo.getClaimNo(), logInfo.getChannelNo(), logInfo.getRequestType(), logInfo.getRequestNme(), logInfo.getServiceFlag(), logInfo.getOthNme(), logInfo.getReqBackFlg(), logInfo.getLogContent(), logInfo.getResultFlag(), logInfo.getResultMess(), logInfo.getReqId(), logInfo.getReqTm(), logInfo.getLogTm() );
	}

   /**
    * 	 
    *  需求名称：[需求/BUG名称]
    *  功能:[只打印日志文件,单独为feign调用时使用]
    *  @auther [@wem]
    *  @date 2017年9月30日 下午12:08:17
    *  功能说明：
    *	   1.说明1: 单feign调用时全部继承 {@link BaseFeignExceptionServer } 类 在这个类中的 methodReturn 方法会返回异常信息(即message ) <br/>
    *     ······
    *  @param type  传入请求类型
    *  @param message  传入 feign接口中返回的值
    *         {BaseFeignExceptionServer.methodReturn() } 返回的值}
    */
	public void saveLoggerInFile(String type, String message) { 
		
		this.logger.warn("非车理赔渠道平台调用异常-系统日期 {} ,请求类型: {} , 错误信息: {} ",
				ToolUtils.formatDate(new Date(), "yyyy-MM-dd HH:mm:ss"), type, message);
	}
}
